Release 10.1A: OpenEdge Getting Started:
OpenEdge Reference Architecture


A layered architecture

The idea that business logic should be separate from the user interface has become an accepted practice in application development. The OpenEdge RA extends that idea by defining and separating other functional areas as well. The separation of functional areas in an application is expressed as the layered model shown in Figure 1–1.

Figure 1–1: The OpenEdge RA Model

Layered models emphasize the independence of functionality in a software architecture. In other words, each layer performs a different set of functions, and each layer is independent of other layers.

For example, UI logic in the Presentation Layer might depend on data from a business object implemented in the Business Servicing Layer. However the UI logic is not dependent on how the business logic was implemented. The UI logic can be JavaScript code, while the business logic was written in the Progress 4GL. Furthermore, the UI logic might be totally redesigned (or even implemented through some other technology) without having to change the business logic.

The following sections define each layer of the OpenEdge RA in more detail.

Data Access Layer

The function of components in the Data Access Layer is to separate data access from data storage. The purpose is to shield the rest of the application from the details of data storage, which makes applications easier to build and to maintain. For example, you might need to extend an application by changing the data source from a relational database to flat XML files. Such a change can be implemented in a single Data Access component rather than in multiple components throughout the application

See Chapter 2, "Data Access Layer," for more information.

Business Servicing Layer

The Business Servicing Layer contains the business logic and the processing components of an application. The components in this layer respond to events by taking certain actions. For example, when a price change occurs, update listings in a product catalog and notify sales reps. The components in this layer also enforce business rules. For example, do not process an order if balance due is over thirty days old. Furthermore, the components in this layer are structured to create a workflow among related processes.

See Chapter 3, "Business Servicing Layer," for more information.

Presentation Layer

The Presentation Layer is the user interface component of an application. It is the point where an external user interacts with an application. Interaction can be direct (by data input) or indirect (by viewing data).

The Presentation Layer consists of three major components:

See Chapter 4, "Presentation Layer," for more information.

Integration Layer

The Integration Layer is similar to the Presentation Layer. Where the Presentation Layer exposes the OpenEdge RA application to external users, the Integration Layer exposes the application to external systems. Integration can be data-centric, which involves moving data from one application to another. Integration can also be functional, which involves exposing an application’s business processes and logic as a service that can be used by external systems.

See Chapter 5, "Integration Layer," for more information.

Environment Managers and Utilities

Environment Managers and Utilities include those components that provide application feature support. These include features like security, session management, context management, localization, personalization, and so on. The OpenEdge RA diagram in Figure 1–1 shows this layer spanning all the other layers in the architecture because these components could be accessed by components in a number of other layers. For example, a security component could be called from the Presentation Layer as well as from the Data Access Layer in order to grant permission to perform certain activities.


Copyright © 2005 Progress Software Corporation
www.progress.com
Voice: (781) 280-4000
Fax: (781) 280-4095